home *** CD-ROM | disk | FTP | other *** search
- GIT v1.5.2 Release Notes
- ========================
-
- Updates since v1.5.1
- --------------------
-
- * Plumbing level superproject support.
-
- You can include a subdirectory that has an independent git
- repository in your index and tree objects of your project
- ("superproject"). This plumbing (i.e. "core") level
- superproject support explicitly excludes recursive behaviour.
-
- The "subproject" entries in the index and trees of a superproject
- are incompatible with older versions of git. Experimenting with
- the plumbing level support is encouraged, but be warned that
- unless everybody in your project updates to this release or
- later, using this feature would make your project
- inaccessible by people with older versions of git.
-
- * Plumbing level gitattributes support.
-
- The gitattributes mechanism allows you to add 'attributes' to
- paths in your project, and affect the way certain git
- operations work. Currently you can influence if a path is
- considered a binary or text (the former would be treated by
- 'git diff' not to produce textual output; the latter can go
- through the line endings conversion process in repositories
- with core.autocrlf set), expand and unexpand '$Id$' keyword
- with blob object name, specify a custom 3-way merge driver,
- and specify a custom diff driver. You can also apply
- arbitrary filter to contents on check-in/check-out codepath
- but this feature is an extremely sharp-edged razor and needs
- to be handled with caution (do not use it unless you
- understand the earlier mailing list discussion on keyword
- expansion). These conversions apply when checking files in
- or out, and exporting via git-archive.
-
- * The packfile format now optionally supports 64-bit index.
-
- This release supports the "version 2" format of the .idx
- file. This is automatically enabled when a huge packfile
- needs more than 32-bit to express offsets of objects in the
- pack.
-
- * Comes with an updated git-gui 0.7.1
-
- * Updated gitweb:
-
- - can show combined diff for merges;
- - uses font size of user's preference, not hardcoded in pixels;
- - can now 'grep';
-
- * New commands and options.
-
- - "git bisect start" can optionally take a single bad commit and
- zero or more good commits on the command line.
-
- - "git shortlog" can optionally be told to wrap its output.
-
- - "subtree" merge strategy allows another project to be merged in as
- your subdirectory.
-
- - "git format-patch" learned a new --subject-prefix=<string>
- option, to override the built-in "[PATCH]".
-
- - "git add -u" is a quick way to do the first stage of "git
- commit -a" (i.e. update the index to match the working
- tree); it obviously does not make a commit.
-
- - "git clean" honors a new configuration, "clean.requireforce". When
- set to true, this makes "git clean" a no-op, preventing you
- from losing files by typing "git clean" when you meant to
- say "make clean". You can still say "git clean -f" to
- override this.
-
- - "git log" family of commands learned --date={local,relative,default}
- option. --date=relative is synonym to the --relative-date.
- --date=local gives the timestamp in local timezone.
-
- * Updated behavior of existing commands.
-
- - When $GIT_COMMITTER_EMAIL or $GIT_AUTHOR_EMAIL is not set
- but $EMAIL is set, the latter is used as a substitute.
-
- - "git diff --stat" shows size of preimage and postimage blobs
- for binary contents. Earlier it only said "Bin".
-
- - "git lost-found" shows stuff that are unreachable except
- from reflogs.
-
- - "git checkout branch^0" now detaches HEAD at the tip commit
- on the named branch, instead of just switching to the
- branch (use "git checkout branch" to switch to the branch,
- as before).
-
- - "git bisect next" can be used after giving only a bad commit
- without giving a good one (this starts bisection half-way to
- the root commit). We used to refuse to operate without a
- good and a bad commit.
-
- - "git push", when pushing into more than one repository, does
- not stop at the first error.
-
- - "git archive" does not insist you to give --format parameter
- anymore; it defaults to "tar".
-
- - "git cvsserver" can use backends other than sqlite.
-
- - "gitview" (in contrib/ section) learned to better support
- "git-annotate".
-
- - "git diff $commit1:$path2 $commit2:$path2" can now report
- mode changes between the two blobs.
-
- - Local "git fetch" from a repository whose object store is
- one of the alternates (e.g. fetching from the origin in a
- repository created with "git clone -l -s") avoids
- downloading objects unnecessarily.
-
- - "git blame" uses .mailmap to canonicalize the author name
- just like "git shortlog" does.
-
- - "git pack-objects" pays attention to pack.depth
- configuration variable.
-
- - "git cherry-pick" and "git revert" does not use .msg file in
- the working tree to prepare commit message; instead it uses
- $GIT_DIR/MERGE_MSG as other commands do.
-
- * Builds
-
- - git-p4import has never been installed; now there is an
- installation option to do so.
-
- - gitk and git-gui can be configured out.
-
- - Generated documentation pages automatically get version
- information from GIT_VERSION.
-
- - Parallel build with "make -j" descending into subdirectory
- was fixed.
-
- * Performance Tweaks
-
- - Optimized "git-rev-list --bisect" (hence "git-bisect").
-
- - Optimized "git-add $path" in a large directory, most of
- whose contents are ignored.
-
- - Optimized "git-diff-tree" for reduced memory footprint.
-
- - The recursive merge strategy updated a worktree file that
- was changed identically in two branches, when one of them
- renamed it. We do not do that when there is no rename, so
- match that behaviour. This avoids excessive rebuilds.
-
- - The default pack depth has been increased to 50, as the
- recent addition of delta_base_cache makes deeper delta chains
- much less expensive to access. Depending on the project, it was
- reported that this reduces the resulting pack file by 10%
- or so.
-
-
- Fixes since v1.5.1
- ------------------
-
- All of the fixes in v1.5.1 maintenance series are included in
- this release, unless otherwise noted.
-
- * Bugfixes
-
- - Switching branches with "git checkout" refused to work when
- a path changes from a file to a directory between the
- current branch and the new branch, in order not to lose
- possible local changes in the directory that is being turned
- into a file with the switch. We now allow such a branch
- switch after making sure that there is no locally modified
- file nor un-ignored file in the directory. This has not
- been backported to 1.5.1.x series, as it is rather an
- intrusive change.
-
- - Merging branches that have a file in one and a directory in
- another at the same path used to get quite confused. We
- handle such a case a bit more carefully, even though that is
- still left as a conflict for the user to sort out. This
- will not be backported to 1.5.1.x series, as it is rather an
- intrusive change.
-
- - git-fetch had trouble with a remote with insanely large number
- of refs.
-
- - "git clean -d -X" now does not remove non-excluded directories.
-
- - rebasing (without -m) a series that changes a symlink to a directory
- in the middle of a path confused git-apply greatly and refused to
- operate.
-